<?php
class Inscription extends Module{
	public function action_index(){
		if ($this->req->noEtudiant != '') {
			$this->session->etudiant = Etudiant::recupererAvecNoEtudiant($this->req->noEtudiant);
			$this->site->ajouter_message('Première étape validée !', OK);
			$this->site->redirect('inscription', 'informationspersonnelles');
		}
		else if ($this->req->noINE != '') {
			$this->session->etudiant = new Etudiant($this->req->noINE, '');
			$this->site->ajouter_message('Première étape validée !', OK);
			$this->site->redirect('inscription', 'informationspersonnelles');
		}
		else if (count($_POST) > 0) {
			$this->site->ajouter_message("Le numéro d'INE ne peut pas être vide.");
		}
	
		$this->set_title("SAN - Inscription");	
		
		$formulaire = new Form("?module=inscription","formulaire");
		$formulaire->add_text("noEtudiant","noEtudiant","N° d'étudiant :");
		$formulaire->add_text("noINE","noINE","N° INE : ");
		
		$formulaire->add_submit("inscription_suite","inscription_suite")->set_value('Suite');	
		$this->tpl->assign("formulaire", $formulaire);		
	}
	
	public function action_informationspersonnelles(){
		if (!$this->session->etudiant instanceof Etudiant) {
			unset($this->session->etudiant);
			$this->site->redirect('index');
		}
		
		if (count($_POST) > 0 && $this->req->numSecu == '') {
			$this->site->ajouter_message('Le n° de sécurité sociale ne peut pas être vide.', ALERTE);
			$err = true;
		}
		
		if (count($_POST) > 0 && $this->req->nom == '') {
			$this->site->ajouter_message('Indiquez votre nom.', ALERTE);
			$err = true;
		}
		
		if (count($_POST) > 0 && $this->req->prenom1 == '') {
			$this->site->ajouter_message('Indiquez au moins un prénom.', ALERTE);
			$err = true;
		}
		
		if (count($_POST) > 0 && $this->req->dateNaissance == '') {
			$this->site->ajouter_message('Indiquez votre date de naissance.', ALERTE);
			$err = true;
		}
		
		if (count($_POST) > 0 && $this->req->villeNaissance == '') {
			$this->site->ajouter_message('Indiquez votre ville de naissance.', ALERTE);
			$err = true;
		}
		
		if (count($_POST) > 0 && $this->req->sexe == '') {
			$this->site->ajouter_message('Indiquez votre sexe.', ALERTE);
			$err = true;
		}
		
		if (count($_POST) > 0 && $this->req->hashandicap == 'O' && $this->req->handicap == '') {
			$this->site->ajouter_message('Indiquez votre handicap', ALERTE);
			$err = true;
		}
		
		if ($this->req->numSecu != '' && $this->req->nom != '' && 
				$this->req->prenom1 != '' && $this->req->dateNaissance != '' && 
				$this->req->sexe != '' && $this->req->hashandicap != '' && !isset($err)) {
				
			$this->session->etudiant->numSecu 		= $this->req->numSecu;
			$this->session->etudiant->nom 			= $this->req->nom;
			$this->session->etudiant->nomJeuneFille = $this->req->nomJeuneFille;
			$this->session->etudiant->prenoms[0] 	= $this->req->prenom1;
			$this->session->etudiant->prenoms[1] 	= $this->req->prenom2;
			$this->session->etudiant->prenoms[2] 	= $this->req->prenom3;
			$this->session->etudiant->dateNaissance = $this->req->dateNaissance;
			$this->session->etudiant->villeNaissance = $this->req->villeNaissance;
			$this->session->etudiant->sexe = ($this->req->sexe == 'Masculin' ? 'M' : 'F');
			
			$this->session->etudiant->handicap = new Handicap();
				
			if ($this->req->hashandicap == 'O') {
				$this->session->etudiant->handicap->identifiant = $this->req->handicap;
			}
			else {
				$this->session->etudiant->handicap->identifiant = null;
			}
			
			$this->site->ajouter_message('Informations personnelles renseignées !', OK);
			$this->site->redirect('inscription', 'coordonnes');
		}
		
		$this->set_title("SAN -  Inscription");		
		
		$formulaire = new Form("?module=inscription&action=informationspersonnelles","form1");
		$formulaire->add_text("numSecu","numSecu","N° de sécurité sociale : ")->set_value($this->session->etudiant->numSecu);
		$formulaire->add_text("nom","nom","Nom : ")->set_value($this->session->etudiant->nom);
		$formulaire->add_text("nomJeuneFille","nomJeuneFille","Nom de jeune fille : ")->set_value($this->session->etudiant->nomJeuneFille);
		
		$formulaire->add_text("prenom1","prenom1","Prénom 1 : ")->set_value($this->session->etudiant->prenoms[0]);
		$formulaire->add_text("prenom2","prenom2","Prénom 2 : ")->set_value($this->session->etudiant->prenoms[1]);
		$formulaire->add_text("prenom3","prenom3","Prénom 3 : ")->set_value($this->session->etudiant->prenoms[2]);
		
		$formulaire->add_text("dateNaissance","dateNaissance","Date de naissance : ")->set_value($this->session->etudiant->dateNaissance);
		$formulaire->add_text("villeNaissance","villeNaissance","Ville de naissance : ")->set_value($this->session->etudiant->villeNaissance);
		
		if ($m = $this->session->etudiant->sexe != null) {
			$m = $this->session->etudiant->sexe == 'M' ? true : false;
			$formulaire->add_radio("sexe","sexe_m","Sexe :", $m, "Masculin")->set_value("M");
			$formulaire->add_radio("sexe","sexe_f", "", !$m, "Féminin")->set_value("F");
		}
		else {
			$formulaire->add_radio("sexe","sexe_m","Sexe :",false, "Masculin")->set_value("M");
			$formulaire->add_radio("sexe","sexe_f", "", false, "Féminin")->set_value("F");
		}
		
		if ($this->session->etudiant->handicap->identifiant != null) {
			$m = $this->session->etudiant->handicap->identifiant != null ? true : false;
			$formulaire->add_radio("hashandicap","hashandicap_o","Avez vous un handicap ?", $m, "Oui")->set_value("O");
			$formulaire->add_radio("hashandicap","hashandicap_n","",!$m,"Non")->set_value("N");
		}
		else {
			$formulaire->add_radio("hashandicap","hashandicap_o","Avez vous un handicap ?", false, "Oui")->set_value("O");
			$formulaire->add_radio("hashandicap","hashandicap_n","",false,"Non")->set_value("N");
		}
		
		$flag = false;
		$handicaps = Handicap::recupererListe();
		
		foreach ($handicaps as $h) {
			if ($this->session->etudiant->handicap->identifiant != null and $this->session->etudiant->handicap->identifiant == $h->identifiant) {
				$m = true;
			}
			else {
				$m = false;
			}
		
			if (!$flag) {
				$formulaire->add_radio("handicap","handicap_".$h->identifiant,"Quel handicap avez-vous ?", $m, $h->valeur)->set_value($h->identifiant);
				$flag = true;
			}
			else {
				$formulaire->add_radio("handicap","handicap_".$h->identifiant,"", $m, $h->valeur)->set_value($h->identifiant);
			}
		}
		
		$formulaire->add_submit("Suite","")->set_value('Suite');
		
		if (!$this->req->sexe) {
		}
		else {
			$formulaire->populate();
		}
		
		$this->tpl->assign("formulaire", $formulaire);	
	}
	
	public function action_coordonnes() {
		if (!$this->session->etudiant instanceof Etudiant) {
			unset($this->session->etudiant);
			$this->site->redirect('index');
		}
		
		if (count($_POST) > 0 && $this->req->numrueparents == '') {
			$err = true;
			$this->site->ajouter_message("Précisez un numéro de rue pour l'adresse des parents.", ALERTE);
		}
		
		if (count($_POST) > 0 && $this->req->nomrueparents == '') {
			$err = true;
			$this->site->ajouter_message("Précisez le nom de la rue pour l'adresse des parents.", ALERTE);
		}
		
		if (count($_POST) > 0 && $this->req->codepostalparents == '') {
			$err = true;
			$this->site->ajouter_message("Précisez le code postal de l'adresse des parents.", ALERTE);
		}
		
		if (count($_POST) > 0 && $this->req->villeparents == '') {
			$err = true;
			$this->site->ajouter_message("Précisez le nom de la ville pour l'adresse des parents.", ALERTE);
		}
		
		if (count($_POST) > 0 && $this->req->typeHebergement == '') {
			$err = true;
			$this->site->ajouter_message("Précisez votre type d'hébergement.", ALERTE);
		}
		
		if (count($_POST) > 0 && $this->req->adressemailetudiant == '') {
			$err = true;
			$this->site->ajouter_message("Précisez une adresse mail pour l'étudiant.", ALERTE);
		}
		
		if ($this->req->numrueparents != '' && $this->req->nomrueparents != '' && 
				$this->req->codepostalparents != '' && $this->req->villeparents != '' && !isset($err)) {
			
			$this->session->etudiant->numRueParents = $this->req->numrueparents;
			$this->session->etudiant->nomRueParents = $this->req->nomrueparents;
			$this->session->etudiant->codePostalParents = $this->req->codepostalparents;
			$this->session->etudiant->villeParents = $this->req->villeparents;
			$this->session->etudiant->numTelParents = $this->req->numtelparents;
			$this->session->etudiant->numPortParents = $this->req->numportparents;
			$this->session->etudiant->adresseMailParents = $this->req->adressemailparents;
			
			$this->session->etudiant->typeHebergement = TypeHebergement::recupererAvecID($this->req->typeHebergement);
			
			$this->session->etudiant->numRueEtudiant = $this->req->numrueetudiant;
			$this->session->etudiant->nomRueEtudiant = $this->req->nomrueetudiant;
			$this->session->etudiant->codePostalEtudiant = $this->req->codepostaletudiant;
			$this->session->etudiant->villeEtudiant = $this->req->villeetudiant;
			$this->session->etudiant->numTelEtudiant = $this->req->numteletudiant;
			$this->session->etudiant->numPortEtudiant = $this->req->numportetudiant;
			$this->session->etudiant->adresseMailEtudiant = $this->req->adressemailetudiant;
			
			$this->site->ajouter_message('Coordonnées renseignées !', OK);
			$this->site->redirect('inscription', 'complements');
		}
		
		$this->set_title("SAN - Inscription");		
		
		$formulaire = new Form("?module=inscription&action=coordonnes", "formulaire");
		
		$formulaire->add_text("numrueparents","numrueparents","N°:")->set_value($this->session->etudiant->numRueParents);		
		$formulaire->add_text("nomrueparents","nomrueparents","Rue :")->set_value($this->session->etudiant->nomRueParents);		
		$formulaire->add_text("codepostalparents","codepostalparents","Code Postal :")->set_value($this->session->etudiant->codePostalParents);		
		$formulaire->add_text("villeparents","villeparents","Ville :")->set_value($this->session->etudiant->villeParents);	
		$formulaire->add_text("numtelparents","numtelparents","Tel :")->set_value($this->session->etudiant->numTelParents);
		$formulaire->add_text("numportparents","numportparents","Portable:")->set_value($this->session->etudiant->numPortParents);
		$formulaire->add_text("adressemailparents","adressemailparents","Adresse Mail :")->set_value($this->session->etudiant->adresseMailParents);	
		
		$flag = false;
		$types = TypeHebergement::recupererListe();
		
		foreach ($types as $t) {
			if ($this->session->etudiant->typeHebergement->identifiant != null and $this->session->etudiant->typeHebergement->identifiant == $t->identifiant) {
				$m = true;
			}
			else {
				$m = false;
			}
			
			if (!$flag) {
				$formulaire->add_radio("typeHebergement","typeHebergement_".$t->identifiant,"Type d'hébergement",$m,$t->valeur)->set_value($t->identifiant);
				$flag = true;
			}
			else {
				$formulaire->add_radio("typeHebergement","typeHebergement_".$t->identifiant,"",$m,$t->valeur)->set_value($t->identifiant);
			}
		}
		
		$formulaire->add_text("numrueetudiant","numrueetudiant","N°:")->set_value($this->session->etudiant->numRueEtudiant);
		$formulaire->add_text("nomrueetudiant","nomrueetudiant","Rue :")->set_value($this->session->etudiant->nomRueEtudiant);		
		$formulaire->add_text("codepostaletudiant","codepostaletudiant","Code Postal :")->set_value($this->session->codePostalEtudiant);		
		$formulaire->add_text("villeetudiant","villeetudiant","Ville :")->set_value($this->session->etudiant->villeEtudiant);	
		$formulaire->add_text("numteletudiant","numteletudiant","Tel :")->set_value($this->session->etudiant->numTelEtudiant);
		$formulaire->add_text("numportetudiant","numportetudiant","Portable:")->set_value($this->session->etudiant->numPortEtudiant);
		$formulaire->add_text("adressemailetudiant","adressemailetudiant","Adresse Mail :")->set_value($this->session->etudiant->adresseMailEtudiant);	
		
		$formulaire->add_submit("Suite", "")->set_value('Suite');
		
		if (!$this->req->typeHebergement) {
		}
		else {
			$formulaire->populate();
		}
		
		$this->tpl->assign("formulaire", $formulaire);			
	}
	
	public function action_complements() {
		if (!$this->session->etudiant instanceof Etudiant) {
			unset($this->session->etudiant);
			$this->site->redirect('index');
		}
		
		if (count($_POST) > 0 && $this->req->situationMilitaire == '') {
			$this->site->ajouter_message('Précisez votre situation militaire !', ALERTE);
			$err = true;
		}
		
		if (count($_POST) > 0 && $this->req->situationFamiliale == '') {
			$this->site->ajouter_message('Précisez votre situation familiale !', ALERTE);
			$err = true;
		}
		
		if ($this->req->situationMilitaire != '' && $this->req->situationFamiliale != '' && !isset($err)) {
			$this->session->etudiant->situationMilitaire = SituationMilitaire::recupererAvecID($this->req->situationMilitaire);
			$this->session->etudiant->situationFamiliale = SituationFamiliale::recupererAvecID($this->req->situationFamiliale);
			
			$this->session->etudiant->catSocioPro_pere = CatSocioPro::recupererAvecID($this->req->catSocioPro_p);
			$this->session->etudiant->catSocioPro_mere = CatSocioPro::recupererAvecID($this->req->catSocioPro_m);
			
			$this->site->ajouter_message('Compléments fournis !', OK);
			$this->site->redirect('inscription', 'confirmation');
		}
	
		$this->set_title("SAN - Inscription");	
		
		$formulaire=new Form("?module=inscription&action=complements","form1");
		
		$flag = false;
		$situations = SituationMilitaire::recupererListe();
		
		foreach ($situations as $s) {
			if ($this->session->etudiant->situationMilitaire->identifiant != null and $this->session->etudiant->situationMilitaire->identifiant == $s->identifiant) {
				$m = true;
			}
			else {
				$m = false;
			}
		
			if (!$flag) {
				$formulaire->add_radio("situationMilitaire","situationMilitaire_".$s->identifiant,"Situation militaire", $m, $s->valeur)->set_value($s->identifiant);
				$flag = true;
			}
			else {
				$formulaire->add_radio("situationMilitaire","situationMilitaire_".$s->identifiant,"",$m,$s->valeur)->set_value($s->identifiant);
			}
		}
		
		$flag = false;
		$situations = SituationFamiliale::recupererListe();
		
		foreach ($situations as $s) {
			if ($this->session->etudiant->situationFamiliale->identifiant != null and $this->session->etudiant->situationFamiliale->identifiant == $s->identifiant) {
				$m = true;
			}
			else {
				$m = false;
			}
		
			if (!$flag) {
				$formulaire->add_radio("situationFamiliale","situationFamiliale_".$s->identifiant,"Situation familiaile", $m, $s->valeur)->set_value($s->identifiant);
				$flag = true;
			}
			else {
				$formulaire->add_radio("situationFamiliale","situationFamiliale_".$s->identifiant,"",$m,$s->valeur)->set_value($s->identifiant);
			}
		}
		
		$cat = CatSocioPro::recupererListe();
		$categories = array();
		
		foreach ($cat as $c) {
			$categories[$c->identifiant] = $c->valeur;
		}

		$formulaire->add_select("catSocioPro_p","catSocioPro_p","Catégorie Socio-professionnelle père :", $categories)->set_value($this->session->etudiant->catSocioPro_pere->identifiant);		
		$formulaire->add_select("catSocioPro_m","CatSocioPro_m","Catégorie Socio-professionnelle mère :", $categories)->set_value($this->session->etudiant->catSocioPro_mere->identifiant);		
		
		$formulaire->add_submit("Suite", "")->set_value('Suite');	
		
		if ($this->req->situationFamiliale != '') {
			$formulaire->populate();
		}
		
		$this->tpl->assign("formulaire",$formulaire);	
	}
	
	public function action_confirmation() {
		if (!$this->session->etudiant instanceof Etudiant) {
			unset($this->session->etudiant);
			$this->site->redirect('index');
		}
		
		// Génération d'un mot de passe aléatoire
		$charset = "azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN0123456789";
		$pass = "";
		
		for ($i = 0; $i < 6; $i++) {
			$pass .= $charset[rand(0, strlen($charset)-1)];
		}
		
		$this->session->etudiant->hashPassword = sha1(sha1($pass).'graindesel');
		
		$this->session->etudiant->enregistrer();
		
		$etudiant = $this->session->etudiant;
		
		unset($this->session->etudiant);
		
		mail($this->session->etudiant, 'Identifiants SAN', "Nom d'utilisateur : {$etudiant->adresseMailEtudiant} ou {$etudiant->noEtudiant} \nMot de passe : {$pass}");
		$this->site->ajouter_message('Le compte de ' . $etudiant->nom . ' ' . $etudiant->prenoms[0] . 'a été enregistré. Le mot de passe associé à ce compte est : <strong> ' . $pass . '</strong>');
		$this->site->redirect('index');
	}
}
?>